<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>字符串对象</title>
  </head>
  <body>
    <script>
      // 1、查找字符串'o123o456o789o330'中所有 o 出现的位置和次数（经典面试题）
      /*
        实现思路：
        1、先 str.indexOf() 查找第一个 o 出现的位置
        2、继续 str.indexOf() 查找后面的 o 的位置
        3、因为 indexOf 只能查找第一个，所以后面的查找，一定要 str.indexOf('o', index + 1)
      */
      var str = 'o123o456o789o330';
      var index = str.indexOf('o');
      var num = 0; // 计数
      while (index !== -1) {
        console.log('位置--', index);
        index = str.indexOf('o', index + 1);
        num++;
      }
      console.log('o 出现的次数是：' + num);

      // 2、判断一个字符串'abcdeopfdcsfcljabckdcsgdcqdachcy'中出现次数最多的字符，并统计其次数
      /*
        实现思路：
        1、利用 charAt() 遍历这个字符串
        2、遍历对象，得到最大值和该字符
      */
      var str2 = 'abcdeopfdcsfcljabckdcsgdcqdachcy';
      var obj = {};
      for (var i = 0; i < str2.length; i++) {
        var strItem = str2.charAt(i);
        if (obj[strItem]) {
          obj[strItem]++;
        } else {
          obj[strItem] = 1;
        }
      }
      var max = 0;
      var ch = '';
      for (var k in obj) {
        if (obj[k] > max) {
          max = obj[k];
          ch = k;
        }
      }
      console.log(`出现次数最多的字符是：${ch}，次数为：${max}`);
    </script>
  </body>
</html>
